package com.lmm.rpc.core.common.request;

//import com.lmm.rpc.core.common.Request;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 默认的rpc request
 * */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DefaultRequest implements  Serializable {

    /**
     * 接口名
     * */
    private String interfaceName;
    /**
     * 方法名
     * */
    private String methodName;
    /**
     * 参数类型
     * */
    private Class<?>[] parameterTypes;
    /**
     * 参数
     * */
    private Object[] arguments;
    /**
     * 重试参数
     * */
    private int retries = 0;
    /**
     * 请求id
     * */
    private long requestId;

    /**
     * 协议版本号
     * */
//    private byte rpcProtocolVersion = RpcProtocolVersion.VERSION_1.getVersion();

    /**
     * 序列化算法
     * */
//    private int serializeNumber = 0;// default serialization is hession2

    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }

    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    public void setParameterTypes(Class<?>[] parameterTypes) {
        this.parameterTypes = parameterTypes;
    }

    public void setArguments(Object[] arguments) {
        this.arguments = arguments;
    }
//
//    @Override
//    public String getInterfaceName() {
//        return interfaceName;
//    }
//
//    @Override
//    public String getMethodName() {
//        return methodName;
//    }
//
//    @Override
//    public Class<?>[] getParameterTypes() {
//        return parameterTypes;
//    }
//
//    @Override
//    public Object[] getParameters() {
//        return arguments;
//    }
//
//    @Override
//    public long getRequestId() {
//        return requestId;
//    }
//
//    @Override
//    public int getRetries() {
//        return retries;
//    }
//
//    @Override
//    public void setRetries(int retries) {
//        this.retries = retries;
//    }
//
//    @Override
//    public void setRpcProtocolVersion(byte rpcProtocolVersion) {
//
//    }
//
//    @Override
//    public byte getRpcProtocolVersion() {
//        return 0;
//    }
//
//    @Override
//    public void setRequestId(long requestId) {
//        this.requestId = requestId;
//    }
}
